Skip to content

Conversation

@raphael-proust
Copy link
Contributor

This pull-request concerns:

  • lwt.6.0.0-beta01: Promises and event-driven I/O
  • lwt_direct.6.0.0-beta01: Direct-style control-flow and await for Lwt
  • lwt_ppx.6.0.0-beta01: PPX syntax for Lwt, providing something similar to async/await from JavaScript
  • lwt_runtime_events.6.0.0-beta01: Emit runtime events to trace the execution of Lwt programs


🐫 Pull-request generated by opam-publish v2.5.1

@mseri
Copy link
Member

mseri commented Nov 23, 2025

There are new incompatibilities, for instance many failures in revdeps of the type of

# (cd _build/default && /home/opam/.opam/4.14/bin/ocamlopt.opt -w -40 -g -I src/debug_rpc/.debug_rpc.objs/byte -I src/debug_rpc/.debug_rpc.objs/native -I /home/opam/.opam/4.14/lib/angstrom -I /home/opam/.opam/4.14/lib/angstrom-lwt-unix -I /home/opam/.opam/4.14/lib/base -I /home/opam/.opam/4.14/lib/base/base_internalhash_types -I /home/opam/.opam/4.14/lib/base/caml -I /home/opam/.opam/4.14/lib/base/shadow_stdlib -I /home/opam/.opam/4.14/lib/bigstringaf -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/jane-street-headers -I /home/opam/.opam/4.14/lib/logs -I /home/opam/.opam/4.14/lib/logs/lwt -I /home/opam/.opam/4.14/lib/lwt -I /home/opam/.opam/4.14/lib/lwt/unix -I /home/opam/.opam/4.14/lib/ocaml/threads -I /home/opam/.opam/4.14/lib/ocplib-endian -I /home/opam/.opam/4.14/lib/ocplib-endian/bigstring -I /home/opam/.opam/4.14/lib/ppx_compare/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_deriving/runtime -I /home/opam/.opam/4.14/lib/ppx_deriving_yojson/runtime -I /home/opam/.opam/4.14/lib/ppx_enumerate/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_expect/collector -I /home/opam/.opam/4.14/lib/ppx_expect/common -I /home/opam/.opam/4.14/lib/ppx_expect/config -I /home/opam/.opam/4.14/lib/ppx_expect/config_types -I /home/opam/.opam/4.14/lib/ppx_hash/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_here/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_inline_test/config -I /home/opam/.opam/4.14/lib/ppx_inline_test/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/4.14/lib/react -I /home/opam/.opam/4.14/lib/sexplib0 -I /home/opam/.opam/4.14/lib/time_now -I /home/opam/.opam/4.14/lib/yojson -I src/debug_protocol/.debug_protocol.objs/byte -I src/debug_protocol/.debug_protocol.objs/native -intf-suffix .ml -no-alias-deps -o src/debug_rpc/.debug_rpc.objs/native/debug_rpc.cmx -c -impl src/debug_rpc/debug_rpc.pp.ml)
# File "src/debug_rpc/debug_rpc.ml", lines 30-35, characters 2-53:
# 30 | ..let%lwt () = Lwt_io.write rpc.out "Content-Length: " in
# 31 |   let%lwt () = Lwt_io.write rpc.out (string_of_int (String.length raw_msg)) in
# 32 |   let%lwt () = Lwt_io.write rpc.out "\r\n\r\n" in
# 33 |   let%lwt () = Lwt_io.write rpc.out raw_msg in
# 34 |   let%lwt () = Lwt_io.flush rpc.out in
# 35 |   Log.debug (fun m -> m "Message sent -- %s" raw_msg)
# Error: This expression should not be a function, the expected type is string

A failure in lwt-ppx itself, possibly related to some dependency

#=== ERROR while compiling lwt_ppx.6.0.0-beta01 ===============================#
# context              2.5.0~alpha1 | linux/x86_64 | ocaml-base-compiler.4.08.1 | pinned(https://github.com/ocsigen/lwt/archive/refs/tags/6.0.0-beta01.tar.gz)
# path                 ~/.opam/4.08/.opam-switch/build/lwt_ppx.6.0.0-beta01
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p lwt_ppx -j 71 @install @runtest
# exit-code            1
# env-file             ~/.opam/log/lwt_ppx-7-fec98b.env
# output-file          ~/.opam/log/lwt_ppx-7-fec98b.out
### output ###
# (cd _build/default && /home/opam/.opam/4.08/bin/ocamlopt.opt -w -40 -g -I test/ppx/.main.eobjs/byte -I test/ppx/.main.eobjs/native -I /home/opam/.opam/4.08/lib/bytes -I /home/opam/.opam/4.08/lib/lwt -I /home/opam/.opam/4.08/lib/lwt/unix -I /home/opam/.opam/4.08/lib/ocaml/threads -I /home/opam/.opam/4.08/lib/ocplib-endian -I /home/opam/.opam/4.08/lib/ocplib-endian/bigstring -I test/.lwttester.objs/byte -I test/.lwttester.objs/native -intf-suffix .ml -no-alias-deps -o test/ppx/.main.eobjs/native/dune__exe__Main.cmx -c -impl test/ppx/main.pp.ml)
# File "test/ppx/main.ml", line 18, characters 7-56:
# 18 | .......let%lwt x = return 3 in
# 19 |        return (x + 1 = 4)
# Error: This function has type
#          (exn -> exn) -> 'a Lwt.t -> ('a -> 'b Lwt.t) -> 'b Lwt.t
#        It is applied to too many arguments; maybe you forgot a `;'.

and some missing bounds, e.g. in the tests

File "src/zip.ml", lines 277-285, characters 6-9:
# 277 | ......let%lwt _unconsumed, result = Angstrom_lwt_unix.parse_many
# 278 |           (parser cb)
# 279 |           (fun x -> push x; Lwt.return_unit)
# 280 |           input_channel
# 281 |       in
# 282 |       begin match result with
# 283 |       | Ok () -> Lwt.return_unit
# 284 |       | Error err -> failwithf "Syntax Error: %s" err ()
# 285 |       end
# Error: This expression should not be a function, the expected type is string

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants